package com.lcredu.bean;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;

/**
 * @author 黎长容
 * @date 2025-07-13 14:54
 */
public class MyBeanPostProcessor implements BeanPostProcessor {

    /**
     * 在 bean 初始化之前完成某些任务
     *
     * @param bean     : ioc对象返回的那个bean
     * @param beanName : ioc容器配置的bean的名称(id)
     * @return 就是返回的 bean 对象
     * @throws BeansException
     */
    @Override
    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
        System.out.println("postProcessBeforeInitialization被调用了..." + beanName + bean);
        //在这里进行对bean的处理
        if (bean instanceof House) {
            ((House) bean).setName("上海豪宅");
        }
        return bean;
    }

    /**
     * 在 bean 初始化之后完成某些任务
     *
     * @param bean     : ioc对象返回的那个bean
     * @param beanName : ioc容器配置的bean的名称(id)
     * @return 就是返回的 bean 对象
     * @throws BeansException
     */
    @Override
    public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
        System.out.println("postProcessAfterInitialization被调用了..." + beanName + bean);
        return bean;
    }
}
